Tell the owner of the shop that you would like to take your car someplace else if they cant correct their work. Make sure that you get put in front of everyone else. You should have your car in one or two days. They dicked you around for way too long. Unfortuantly you got screwed by taking it to the wrong places. Shops should do quality work and get the cars back to the owners in a reasonable amount of time.
Next time search around for a repituable shop and you need to tell the shop owner what you want and WHEN it needs to be completed by. You have to work something out and get it in writing! They might be busy and have other things going on.... but its your job to make sure that your the customer they are not going to "put on hold".